//  1.router传值
/**
 * this.$router.push({ name: 'news', params: { userId: 123 }})
 * // {{this.$route.params.userId}}
 * this.$router.push({ path: '/news', query: { userId: 123 }});
 * // {{this.$route.query.userId}}
 * 1.命名路由搭配params，刷新页面参数会丢失
 * 2.查询参数搭配query，刷新页面数据不会丢失
 * 
 * 路由懒加载
 * require/import
 * 路由勾子
 * 路由首选
 */

//  2.组件通信
/**
 * 
 */

// 3.vue原理
/**
 * vue是采用数据劫持配合发布者-订阅者模式的方式，通过Object.definerProperty()来劫持各个属性的setter和getter，在数据变动时，发布消息给依赖收集器，去通知观察者，做出对应的回调函数，去更新视图。
 * 
 * MVVM作为绑定的入口，整合Observer，Compile和Watcher三者，通过Observer来监听model数据变化，通过Compile来解析编译模版指令，最终利用Watcher搭起Observer，Compile之间的通信桥梁，达到数据变化=>视图更新，视图交互变化=>数据model变更的双向绑定效果
 */

// 4.$set
/**
 * 如果在实例创建之后添加新的属性到实例上，它不会触发视图更新。 
 * 
 */